package com.example.test.算法;

import cn.hutool.json.JSONUtil;

import java.util.Arrays;

public class 冒泡排序 {

    /**
     * @Description 从小到大
     * 每次循环都是取出当前循环次数的索引元素,与其他每一个元素比较,如果大于某个元素,那么交换位置
     * @Author 寂寞旅行
     * @Date 20:43 2022/2/26
     * @Param [args]
     **/
    public static void main(String[] args) {

        int[] arr = {4, 5, 6, 3, 2, 1};

        // 从小到大排序
        for (int i = 0; i < arr.length; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                int temp;
                if (arr[i] > arr[j]) {
                    temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
            System.out.println("第" + i + "次" + JSONUtil.toJsonStr(arr));
        }


        /**
         *
         * 第0次[7,1,5,3,6,2,4]
         * 第1次[7,6,1,3,5,2,4]
         * 第2次[7,6,5,1,3,2,4]
         * 第3次[7,6,5,4,1,2,3]
         * 第4次[7,6,5,4,3,1,2]
         * 第5次[7,6,5,4,3,2,1]
         * 第6次[7,6,5,4,3,2,1]
         *
         **/
        // 从大到小
//        for (int i = 0; i < arr.length; i++) {
//            for (int j = i; j < arr.length; j++) {
//                int temp;
//                if (arr[i] < arr[j]) {
//                    temp = arr[i];
//                    arr[i] = arr[j];
//                    arr[j] = temp;
//                }
//            }
//            System.out.println("第" + i + "次" + JSONUtil.toJsonStr(arr));
//        }


//        for (int i = arr.length - 1; i > 0; i--) {
//            for (int j = 0; j < i; j++) {
//                int temp;
//                if (arr[j] > arr[j + 1]) {
//                    temp = arr[j];
//                    arr[j] = arr[j + 1];
//                    arr[j + 1] = temp;
//                }
//            }
//            System.out.println(Arrays.toString(arr));
//        }

    }

}
